#####此test是python中的运算符
#########################################################################

                        # 一 算术运算符 

print(1+1)  #将会执行加法运算
print(1-1)  #减法运算
print(1*2)  #乘法
print(2/1)  #除法  这个计算结果是2.0



print(2//1) #整除运算 因为 // 是整除运算所以只取整数部分这个计算结果是2
print(9//-4)  #####与c语言不同，这里并不是直接取整数部分而是  向下取整 9/-4=-2.2 向下取整为 -3



print(11%2) #取模运算
print(9%-4) #######一正一负 此结果为-3  因为python中用公式 余数=被除数-除数*商 即 余数=9-（-4）*（-3）=-3



print(2**3) #幂运算 输出2的3次方 即8
#######################################################################

                      # 二 赋值运算符

# 在python中 = 支持链式赋值 也支持 系列解包赋值

print('-------------链式赋值----------------------')
a=b=c=20 #链式赋值  a,b,c指向的空间中 id 相同 就相当于 a,b都是c的引用

print(a,id(a))
print(b,id(b))
print(c,id(c))  #这几个id 是相同

print('----------------系列解包赋值------------')
d,e,f=10,20,30 #系列解包赋值
print(d,id(d))
print(e,id(e))
print(f,id(f))
                #这几个id就不一样了，这种赋值方式就是简化版的普通赋值

print('系列解包赋值好处是，在交换两个数字时不用设置第三个变量')
print('像这样  a,b=b,a  完成交换赋值')


print('---------交换之前----------')
i,j=6,9
print('i= ',i,'j= ',j)
i,j=j,i

print('----------交换之后----------')

print('i= ',i,'j= ',j)
#########################################################################

                  # 三 比较运算符

# > < >= <= ==
#返回值是 bool 类型

print(i>j)  #因为i=9,j=6所以i>j是成立的  所以print()函数会输出 true

#补充 is 关键字 is关键字比较的是两个变量的id 
#而== 比较的是两个变量的 “值” 是否相同
#例：

x=10
y=10
print('x的值是',x)
print('x的ID是',id(x))
print('y的值是',y)
print('y的id是',id(y))

print('is 与 == 的不同')

print('a is b?')


###########################################################################

                  # 四 布尔运算符

#以下是bool运算符：
# and 、or、 not、 in、 not in;

# and : 就与c语言中&&一样
# or  :就与c语言中||一样
# not ：取反 与c语言中！一样

# in  :表示在什么什么里面
#not in ：表示不在什么什么里面

#例子
print('--------------in 与 not in --------------------------')

print('输出\'x\' in \'xyz\'的结果','x' in 'xyz')  #true
print('输出\'x\' not in \'xyz\'的结果','x' not in 'xyz') #false

#########################################################################3

